Agile model:

"Able to move quickly and easily"

	OR

"A method of project management, used especially for software development, that is characterized by the division of tasks into short phases of work and frequent reassessment and adaptation of plans."

It is a customized model. It is a combination of Waterfall + Spiral model.

-------------------------------
Different Agile Methodologies:
1. Scrum
2. Crystal Methodologies
3. Dynamic Software Development Method (DSDM)
4. Feature Driven Development (FDD)
5. Lean Software Development
6. Extreme Programming
7. Kanban

In Agile model we use SCRUM methodology.

===============================
Agile process under SCRUM methodology:

1. User stories collection (Requirements)
2. Agile team formation
3. Sprint planning
4. Product backlog review
5. Sprint kick-off meeting
6. Sprint
   (a) Daily Scrum meeting OR Daily Standup meeting
   (b) Implementations OR Coding
   (c) Unit Testing OR White Box Testing
   (d) Review
   (e) Testing
   (f) Release
7. Sprint Review OR Sprint Retrospect meeting
8. Next Sprint

Note: Agile will have time boxing of activities.
Which means any activity we do in agile will have a strict estimation/deadline.
-------------------------------------------
1. User stories collection:
   In Agile, requirements are also k.a., User Stories. The Product owner will collect the User stories from the customer. He/She is a SPOC (Single Point Of Contact) between company and Customer.
   Product owner goes to customer location, explains about the agile process and collects the User stories from the customer. Once the User stories are collected it will be handed over to the Scrum Master.
------------------------------------------
2. Agile team formation:
    A scrum Master will play a vital role in the Agile Team Formation. 
    A typical Agile/Scrum Team consist of min 5-7 Dev & atleast 1 QA put together. The no. of Agile/Scrum teams depends on:
   (a) Project Responsibilities
   (b) Complexity of the project 
   (c) Team Size/Head count

All the team members should have mindset of owning complete product responsibilities (Holistic Approach).
The team members should be a motivated individual & having required skill set.

----------------------------------
3. Sprint planning:
   Once User Stories are given to Scrum Master, they will perform the Sprint Planning. Which includes:
 (a) No. of sprints required to develop the s/w
 (b) Spint Window will be defined
 (c) Segregation of User Stories in each sprint.

Sprint: Its is a total duration period of time in which all the selected User Stories are developed is k.a., Sprint.

Sprint Window: A fixed duration for the sprints. Usually it will be 3 weeks.

Scrum Master Responsibilities:
1. Agile team formation
2. Defining sprint window
3. Defining # of sprints
4. Defining daily standup meetings, status meetings, kick-off meetings etc.
5. Prioritization & Allocation of the tasks to the individuals.
6. Solving OR resolving the challenges/impediments/Crux among the scrum team members.
7. Sharing the work status with the stake holders (Any one who is directly OR indirectly involved with your project. Ex: Sales, Marketing, Customer, Dev, QA, Product Owner etc).

Note: He acts as a facilitator.

------------------------------------
4. Product backlog review:
   A feature/fixes/changes which can be taken as part of the current sprint is k.a., backlog. All the backlogs will be assigned to the individuals.

What are the activities takes place in Product backlog review:

1. Task prioritization and allocation to the individuals

2. All the team members will go through the User Stories assigned to them & understands them. During the process of understanding of User Stories we can talk/discuss with BA, Product Owner, Dev, PEER etc.

3. Both Dev & QA must chalk out/Write down risk assessments.

4. All the team members has to provide the estimation to the tasks allocated to them by including both Dev & QA efforts put together.

5. SM will collects the estimations from all the team members and create a Story Point (A unit of estimation measuring complexity and size is k.a., Story Point)

6. Once the given estimation is sustainable, then the same thing will be communicated to the stake holders & then the current sprint User Stories will be freezed. (No more new US will be added to the current sprint after freezing the reqts.)

----------------------------------
5. Sprint kick-off meeting:
 In sprint kick-off meeting we will show the preparation checklist OR Readiness Criteria

QA checklist:
1. Documentation is ready (Test case & Testplan)
2. Risk outlined and understood
3. Preparation for the QA activities

Dev checklist:
1. Design understood
2. Ready with plan and documentation etc

SM will share the meeting details with all the stake holders
---------------------------------
6. Sprint:
   All the scrum team members will attend the Daily scrum meeting OR Daily standup meeting. This meeting should be completed within 15-20 mins.
   
The following things will be discussed by the individuals during the Daily Scrum meeting:
1. What we have done yesterday
2. What we are going to do today
3. Any challenges OR impediments OR Crux

After the meeting QA goes to their desk, write/update the test cases as per the discussion.
  Once the test cases are written, it should undergo review process. In Agile BA, Dev will involve in the review meetings along with the QA.
  QA has to talk to BA & Dev, get their availability & setup a review meeting with them. After the review, the QA has to fix all the review comments, Baseline the test cases and store them in test case repository. (It is a centralized place in which the test cases are stored is k.a., Test case repository). 
  Once Dev completes the coding for the discussed features they will create a build & give to QA for testing purpose along with Release Note (RN) doc.

   Once QA gets the build + RN:
1. QA should go through the RN & understand the build scope (What are the features are implemented/developed in the current build is k.a., Build scope).
2. Select the testcases as per the current build scope & provide the estimation
3. Execute/Run all the selected test cases against the build. During execution If QA find any defects it should be logged against the dev in a defect tracking tool.
4. Finally prepare the consolidated Test execution report.

   The same process will be repeated for the next subsiquent days until all the sprint features are developed and tested.(usually 3 weeks)

SCRUM: It is an iterative & incremental way of the developing all the selected use stories which are part of the current sprint is k.a., SCRUM.
-----------------------------------
7. Sprint Review OR Sprint Retrospect meeting OR Post Marton meeting:
    Once the sprint is completely developed and tested, we will perform deployment process OR release the s/w to the customer.
   After the release of the software, all the agile team members will perform a Sprint Review OR Sprint retrospect meeting.

During Sprint review meeting all the individuals should talk about following things:
1. What are the best practicess we have followed
2. Any process which requires improvement.
3. Any challenges faced and how did you overcome.
4. Any suggestions

  The SM will document the retrospect discussions. So that the documentaion will act as a base for the next upcoming sprints.

--------------------------------
After completion of Sprint 1 we may perform USer story collection, sprint planning, product backlog review & Sprint kick-off meetings for Sprint2. So that the moment Sprint1 completes we are ready for the sprint2 activities.

  In Sprint2/subsiquent sprint we can have new features, defects from previous sprint, backlog from previous sprint etc.
------------------------------------

Recommended Practices:

Development:
TDD - Test Driven Development
Weekly Code Reviews for critical fixes with the Agile team (including QA).

QA:
Review of Risk analysis with the Agile team.
Review of test coverage/plan with the Agile team.
Discuss all critical defects found, at the earliest, with the Agile team, and with stake holders

Note:
a) It is highly desirable to have automate test cases both at unit level (Dev) and at system level (QA). This helps in becoming agile.

------------------------
Advantages OR Principles of Agile:

1. Customer satisfaction by rapid delivery of useful software
2. Welcome changing requirements, even late in development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
7. Working software is the principal measure of progress
8. Sustainable development, able to maintain a constant pace
Continuous attention to technical excellence and good design
9. Simplicitythe art of maximizing the amount of work not doneis essential
10. Self-organizing teams
11. Regular adaptation to changing circumstances


Dis-Advantages:
1. It is not useful for small development projects.
2. There is a lack of intensity on necessary designing and documentation.
3. It requires an expert project member to take crucial decisions in the meeting.
4. Cost of agile development methodology is slightly more as compared to other development methodology.
5. The project can quickly go out off track if the project manager is not clear about requirements and what outcome he/she wants.


==========================
	Q & A
==========================
1. What is Daily scrum meeting? What you do in Daily stand up meeting?


2. How the user stories will be assigned to you?
Ans: The user stories will be assigned to each individuals in a JIRA tools. Once done all team members will get notification.
Ex: ALM, SpiraTest, JIRA, TestRail etc


3. What is Sprint?


4. What is SCRUM?
Ans: Scrum is a development phase. It defines "It is a iterative and incremental approach of developing a s/w product"



5. How many sprint you have completed in current project?
Ans: around 7-8 in the current project.



6. What is your role in Agile? OR Explain Agile process in your organization?
Ans:
1. As we are Practicising agile our day starts with Daily standup meeting(DSM). Here we discuss following things:
A. What we have done yesterday
B. What we are going to do today
C. Any blocker OR challenges OR impediments
      |
      V
2. After the DSM, QA goes to his desk update/write the test cases. Once done it should under go review process. In agile review should be done F2F. Hence QA will setup a meeting with Dev & BA.
      |
      V
3. After review, fix all the review comments, baseline the test cases and store them in Test case repository
      |
      V
4. When build comes select and Execute the test cases against the build based on the Build scope. During execution we perform Manual execution (wherever required) and automation execution as well.
      |
      V
5. If you find any defects, log the defect against dev in a defect tracking tool
      |
      V
6. Finally prepare a consolidated test execution report.

 similarly multiple builds can happen in every sprint until all the sprint features are implemented.
-------------------------------------

Q: How do you project the work status/progess?
Ans: Through the daily status report & as well as thorugh "Burndown chart".
Note: Burndown charts are graphs that give an overview of progress over time while completing a project. As tasks are completed, the graph burns down to zero.


Q: Who will assign the Dev task in Agile?
Ans: Scrum Master (Dev Tasks)
QA Manager (QA tasks)


Q: Why do you do stand up OR Scrum meeting?
Ans:
1. It establishes a proper sync between dev & QA with respect to project requirements OR taks.
2. We can understand with move rapily.
3. Mis-understandings with respect to requirements will be reduced draustically.